home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Prog / T / ThP301.cpt / ThP 3.0.1_TCL Online Update < prev   
Text File  |  1990-05-15  |  8KB  |  246 lines

  1. THINK PASCAL 3.0.1/TCL ONLINE UPDATE PACKAGE
  2. ============================================
  3. 5/15/90
  4.  
  5. INTRODUCTION
  6. ============
  7. This update package corrects some bugs in THINK Pascal 3.0 and some
  8. minor bugs in the Pascal version of the THINK Class Library.
  9.  
  10. WHAT’S IN THE UPDATE PACKAGE
  11. ============================
  12. This update package contains an applications that updates your existing
  13. THINK Pascal 3.0 to THINK Pascal 3.0.1 and a folder that contains files
  14. to update the THINK Class Library.
  15.  
  16.     •    All THINK Pascal 3.0 users should update to
  17.         THINK Pascal 3.0.1.
  18.  
  19.     •    All THINK Pascal 3.0 users who use the
  20.         THINK Class Library should apply the TCL Update.
  21.  
  22. The sections that follow tell you how to update THINK Pascal and the
  23. THINK Class Library and what bugs the updates fix.
  24.  
  25.  
  26. THINK PASCAL 3.0.1 UPDATE
  27. =========================
  28. This update transforms your existing THINK Pascal 3.0 application
  29. to THINK Pascal 3.0.1.
  30.  
  31. Installing the Update
  32. ---------------------
  33.     0.    Make sure that you have your original THINK Pascal
  34.         application. You won't need it for this update, but you 
  35.         should make sure that you have a backup in case the update
  36.         fails.
  37.                 
  38.     1.    Double-click on the patch program THINK Pascal -> 3.0.1 to
  39.         launch it. Click on the Update THINK Pascal button to continue.
  40.  
  41.     2.    Find your existing copy of THINK Pascal in your THINK Pascal
  42.         Folder. Select it and click on the Patch button.
  43.         
  44.         If you use a virus intercept program, such as SAM, it may warn 
  45.         you that THINK Pascal -> 3.0.1 is modifying code resources. 
  46.         Allow these changes.
  47.         
  48.  
  49. What This Update Changes
  50. ------------------------
  51. These are the bugs fixed in version 3.0.1:
  52.  
  53.     •    If a PACKED ARRAY OF Boolean had a lower bound which was not
  54.         modulo 8, the wrong bit in the array would be stored and fetched.
  55.         For example:
  56.         
  57.         VAR
  58.             bits : PACKED ARRAY [0..15] OF Boolean;
  59.             
  60.         worked OK, whereas
  61.         
  62.         VAR
  63.             bits : PACKED ARRAY [1..16] OF Boolean;
  64.             
  65.         did not.
  66.         
  67.     •    An attempt to store a non-immediate value to an element of a 
  68.         PACKED ARRAY OF Boolean would result in a bit being changed
  69.         in random memory if the value was FALSE:
  70.         
  71.         bits[4] := TRUE;        {    worked    }
  72.         bits[4] := FALSE;        {    worked    }
  73.         bits[4] := bool;        {    worked if bool was TRUE, failed }
  74.                                 {    if bool was FALSE.              }
  75.                                     
  76.     •    Attempting to use an element of a PACKED ARRAY OF Boolean as an
  77.         argument to one of the intrinsic bit-manipulation functions 
  78.         (BAND, BOR, etc) crashed the compiler. This happened most often
  79.         in code ported from THINK Pascal 2.0 which dealt with variables
  80.         of type KeyMap. KeyMaps were previously arrays of four LongInts,
  81.         so it was necessary to BAND an element of a KeyMap with a mask
  82.         value to test the desired bit.
  83.         
  84.             ••    IMPORTANT
  85.                 Although the compiler will no longer crash, the result
  86.                 from BAND(myKeyMap[n], m) will NOT be the result  
  87.                 you're looking for. You should just perform a Boolean  
  88.                 test on the required element of the KeyMap.
  89.         
  90.     •    When using an object-type result of a method function call as the
  91.         target of a WITH statement, incorrect code was generated. For
  92.         example:
  93.         
  94.             WITH MethodFunc(args) DO
  95.                 ResultsMethod(moreArgs);
  96.                 
  97.         The result of MethodFunc was not properly removed from the stack
  98.         before pushing moreArgs and calling ResultsMethod. This error usually 
  99.         caused a bus error or method not found.
  100.         
  101.     •    When indexing a multidimensional array whose aggregate size was >32K
  102.         with an immediate index, the wrong code would be generated if the
  103.         column offset was less than 32K into the column, but greater than 32K
  104.         into the array.
  105.         
  106.         Consider:
  107.         
  108.             TYPE    BigArray = array[1..7, 1..648] of Double;
  109.                     PBigArray = ^BigArray;
  110.                     
  111.             var
  112.                 pb : PBigArray;
  113.                 
  114.                 ...
  115.                 
  116.                 pb^[7, 209] := PI;    { 209 is within 32K of pb^[7], but    }
  117.                                     { greater than 32K away from pb^[1].}
  118.  
  119.     •    Havoc would ensue if a program attempted to call LoadSeg on a 
  120.         segment which was already loaded and locked in memory. An example
  121.         of this behavior is the PreloadSegment routine found in 
  122.         MacApp versions later than 2.0b10.
  123.                 
  124.     •    Occasionally, THINK Pascal would get confused and believe that the
  125.         Instant and Observe windows had been checked out from Projector 
  126.         read-only, which precluded typing anything into them.
  127.         
  128.  
  129. THINK CLASS LIBRARY UPDATE
  130. ==========================
  131. This update fixes some minor bugs in the THINK Class Library.
  132.  
  133. This update uses a program called AutoWeave to create new TCL source files
  134. from your existing files. It applies a set of "differences" files to the
  135. original THINK Class Library source files that came with your THINK Pascal
  136. package to create new updated source files.
  137.  
  138. There are two things to watch out for:
  139.  
  140.     •    The AutoWeave program assumes that you have not changed
  141.         how the THINK Class Library source files are organized.
  142.         All of the TCL source files should be a folder called
  143.         THINK Class Library which should contain two folders called
  144.         Core Classes and More Classes. The Starter and TinyEdit
  145.         demos should be in a folder called TCL Demos, and the
  146.         Art Class demo should be in a folder called Art Class Folder.
  147.  
  148.     •    If you modified any of the original source files, you
  149.         should move them to a different folder or rename them.
  150.         Otherwise, the AutoWeave program will replace them with
  151.         updated versions, and your changes will be lost.
  152.  
  153.  
  154. INSTALLING THE UPDATE
  155. ---------------------
  156.     ••    Please read these instructions before you begin.
  157.  
  158.     0.    Be sure that you have your original disk THINK Pascal 2 from your
  159.         THINK Pascal 3.0 package. Make sure the disk is write-protected.
  160.  
  161.     1.    Double-click on the file named "TCL Update.Script" to launch
  162.         the AutoWeave program.
  163.         
  164.     2.    The AutoWeave program will ask you to locate the original "THINK
  165.         Class Library" folder. Insert your THINK Pascal 2 disk in the
  166.         floppy drive, choose the folder "THINK Class Library" and click OK.
  167.                 
  168.     3.    The AutoWeave program will ask you to locate your copy of the
  169.         "THINK Class Library" folder.  If you followed the installation
  170.         instructions in your THINK Pascal 3.0 User's Manual, this folder
  171.         is in your THINK Pascal Folder.
  172.                 
  173.     4.    The AutoWeave program will ask you to locate the "TCL Diffs"
  174.         folder.  This folder is supplied as part of this update.
  175.         Select this folder and click OK.
  176.         
  177.     5.    The AutoWeave program will now modify the appropriate files,
  178.         keeping you informed of its progress.  When it has finished,
  179.         you may want to check one or two of the files, to make sure
  180.         that everything worked.  (For example, if you chose the 
  181.         wrong Diffs folder in step 4, the Weaver wouldn't actually
  182.         do anything, although it might act like it did.)
  183.  
  184. To update the TCL Demos double-click on the file "TCL Demos Update.Script"
  185. and follow the instructions above.
  186.  
  187. To update the Art Class demo, double-click on the file "Art Class Update.Script"
  188. and follow the instructions. The original Art Class Folder is on disk
  189. THINK Pascal 3
  190.         
  191.  
  192. WHAT’S IN THE UPDATE
  193. --------------------
  194. 1.    CBartender.p
  195.         ParseItemString now initializes cmdStr to nullStr.
  196.  
  197. 2.    CButton.p
  198.         IButton now adjusts hEncl and vEncl to account for its enclosure's
  199.         origin.
  200.  
  201. 3.    CEditText.p
  202.         Modified DoClick to fix activation problem with multiple EditText
  203.         fields within a pane.
  204.  
  205. 4.    CError.p
  206.         SevereMacError method:  the errMsg handle is now initialized properly.
  207.         MissingResources method:  now uses GetOSEvent to wait for mouseDown
  208.         or keyDown.
  209.  
  210. 5.    CPane.p
  211.         FrameToGlobalR method has been corrected.  (Warning:  this method
  212.         doesn't work if the window is not visible.)
  213.         
  214. 6.    CResFile.p
  215.         Open method now calls HOpenResFile instead of HOpenRF.
  216.         
  217. 7.    CWindow.p
  218.         FrameToGlobalR method has been corrected.  (Warning:  this method
  219.         doesn't work if the window is not visible.)
  220.         
  221. 8.    The TCL no longer passes object instance variables to the NEW procedure.
  222.     This used to cause problems with Heap Scramble on
  223.  
  224.         TCL files changed:
  225.             CApplication.p
  226.             CBitMapPane.p
  227.             CCharGrid.p
  228.             CClipboard.p
  229.             CDesktop.p
  230.             CDocument.p
  231.             CRadioGroup.p
  232.             CScrollPane.p
  233.             CFWDesktop.p
  234.             CTearOffMenu.p
  235.             CView.p
  236.             
  237.         TCL Demo files changed:
  238.             CStarterDoc.p
  239.             CEditDoc.p
  240.             CAboutBox.p
  241.             CArtClassApp.p
  242.             CArtClassDoc.p
  243.             CPaintPane.p
  244.             CPaintTask.p
  245.             CToolPens.p
  246.             CToolText.p